import java.awt.*;
import java.awt.event.*;
import java.io.*;
import javax.swing.*;
public class Example10_14 { 
	public static void main(String args[]) { 
		MyWin win=new MyWin();
	}
}
class MyWin extends JFrame implements ActionListener {
	JLabel label=null; 
	JButton 读入=null,写出=null;
	ByteArrayOutputStream out = null;
	MyWin() {
		setLayout(new FlowLayout()); 
		label=new JLabel("How are you");
		读入=new JButton("读入对象"); 
		写出=new JButton("写出对象");
		读入.addActionListener(this);
		写出.addActionListener(this);
		setVisible(true); 
		add(label);
		add(写出);
		add(读入);
		setSize(500,400);
		setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		validate();
	}
	public void actionPerformed(ActionEvent e) {
		if(e.getSource()==写出) {
			try{ 
			       	out = new ByteArrayOutputStream();
				ObjectOutputStream objectOut = new ObjectOutputStream(out);
				objectOut.writeObject(label);               
				objectOut.close();
			}
			catch(IOException event){}
		}
		else if(e.getSource()==读入) {
			try{
			      	ByteArrayInputStream in = new ByteArrayInputStream(out.toByteArray());
				ObjectInputStream objectIn = new ObjectInputStream(in);
				JLabel temp=(JLabel)objectIn.readObject();
				temp.setText("你好"); 
				this.add(temp);
				this.validate();
				objectIn.close();
			}
			catch(Exception event){}
		}
	}
}

